Blade: A Data Center Garbage Collector
نویسندگان
چکیده
An increasing number of high-performance distributed systems are written in garbage collected languages. This removes a large class of harmful bugs from these systems. However, it also introduces high tail-latency do to garbage collection pause times. We address this problem through a new technique of garbage collection avoidance which we call BLADE. BLADE is an API between the collector and application developer that allows developers to leverage existing failure recovery mechanisms in distributed systems to coordinate collection and bound the latency impact. We describe BLADE and implement it for the Go programming language. We also investigate two different systems that utilize BLADE, a HTTP load-balancer and the Raft consensus algorithm. For the load-balancer, we eliminate any latency introduced by the garbage collector, for Raft, we bound the latency impact to a single network round-trip, (48 μs in our setup). In both cases, latency at the tail using BLADE is up to three orders of magnitude better.
منابع مشابه
A High-performance Garbage Collector for Standard ML
We have designed and implemented a new garbage collector for the Standard ML of New JerseySystem (SML/NJ). This collector has higher performance, lower latency and generally requires lessphysical memory than the existing SML/NJ collector. In addition, it is able to exploit the largesecondary caches found on modern workstations. This paper describes the design of the collector,an...
متن کاملGenerational Garbage Collection for Lazy Functional Languages without Temporary Space Leaks
Generational garbage collection is an established method for creating eecient garbage collectors. Even a simple implementation where all nodes that survive one garbage collection are tenured, i.e., moved to an old generation, works well in strict languages. In a lazy language, however, such an implementation can create severe temporary space leaks. The temporary space leaks appear in programs t...
متن کاملGenerational Garbage Collection without Temporary Space Leaks for Lazy Functional Languages
Generational garbage collection is an established method for creating eecient garbage collectors. Even a simple implementation where all nodes that survive one garbage collection are tenured, i.e., moved to an old generation , works well in strict languages. In lazy languages, however, such an implementation can create severe temporary space leaks. The temporary space leaks appear in programs t...
متن کاملCombining Single-Space and Two-Space Compacting Garbage Collectors
The garbage collector presented in this paper makes use of two well known compaction garbage collection algorithms with very diierent performance characteristics: Cheney's two-space copying collector and Jon-ker's single-space sliding compaction collector. We propose a scheme which allows either collector to be used. The run-time memory requirements of the program being executed are used to det...
متن کاملDraft Comparing Two Garbage Collectors for C++
Our research is concerned with compiler-independent, tag-free garbage collection for the C ++ programming language. This paper presents a mark-and-sweep collector , and explains how it ameliorates shortcomings of a previous copy collector. The new collector, like the old, uses C ++ 's facilities for creating abstract data types to deene a tracked reference type, called roots, at the level of th...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1504.02578 شماره
صفحات -
تاریخ انتشار 2014